Satisfiability modulo fuzzing: a synergistic combination of SMT solving and fuzzing
نویسندگان
چکیده
Programming languages and software engineering tools routinely encounter components that are difficult to reason on via formal techniques or whose semantics not even available—third-party libraries, inline assembly code, SIMD instructions, system calls, calls machine learning models, etc. However, often access these is available as input-output oracles—interfaces query certain inputs receive the respective outputs. We refer such functions closed-box . Regular SMT solvers unable handle functions. propose Sādhak, a solver for theories modulo Our core idea use synergistic combination of fuzzer an engine solve constraints pertaining theories. The fuzz engines attempt converge model by exchanging rich set interface relevant interpretable them. implementation, demonstrates significant advantage over only other capable handling constraints: Sādhak solves 36.45% more benchmarks than best-performing mode this state-of-the-art has 5.72x better PAR-2 score; solved both tools, (on average) 14.62x faster.
منابع مشابه
H-Fuzzing: A New Heuristic Method for Fuzzing Data Generation
How to efficiently reduce the fuzzing data scale while assuring high fuzzing veracity and vulnerability coverage is a pivotal issue in program fuzz test. This paper proposes a new heuristic method for fuzzing data generation named with H-Fuzzing. H-Fuzzing achieves a high program execution path coverage by retrieving the static information and dynamic property from the program. Our experiments ...
متن کاملA New Fuzzing Method Using Multi Data Samples Combination
* Corresponding Author Abstract-Knowledge-based Fuzzing technologies have been applied successfully in software vulnerability mining, however, its current methods mainly focus on Fuzzing target software using a single data sample with one or multi-dimension input mutation [1], and thus the vulnerability mining results are not stable, false negatives of vulnerability are high and the selection o...
متن کاملSTAB Fuzzing: A Study of Android’s Binder IPC and Linux/Android Fuzzing
This paper focuses on describing the necessary background to begin working with Binder: Android’s Interprocess Communication (IPC) mechanism, and Linux/Android system call (“syscall”) fuzzing tools. The objective was to study Android and Binder along with system call fuzzing in order to learn more about Android, Binder IPC, and vulnerability detection and analysis. Our study was further concent...
متن کاملSMT-COMP: Satisfiability Modulo Theories Competition
Decision procedures for checking satisfiability of logical formulas are crucial for many verification applications (e.g., [2, 6, 3]). Of particular recent interest are solvers for Satisfiability Modulo Theories (SMT). SMT solvers decide logical satisfiability (or dually, validity) with respect to a background theory in classical first-order logic with equality. Background theories useful for ve...
متن کاملDeep Reinforcement Fuzzing
Fuzzing is the process of finding security vulnerabilities in input-processing code by repeatedly testing the code with modified inputs. In this paper, we formalize fuzzing as a reinforcement learning problem using the concept of Markov decision processes. This in turn allows us to apply state-of-theart deep Q-learning algorithms that optimize rewards, which we define from runtime properties of...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2022
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3563332